package com.oop.Demo05;
/**
 * @Author Void
 * @Description //TODO static方法详解
 * @Date 11:51 2021/3/5
 * @Param
 * @return
 **/
//静态导入包 不用写前缀
import static java.lang.Math.random;

public class Student {
    private static int age;//静态变量 多线程
    private double score;//非静态变量


    //main方法
    public static void main(String[] args) {
        Student s = new Student();
        System.out.println(Student.age);//静态变量可通过类名直接调用
        System.out.println(s.score);//非静态变量需要实例化调用
        System.out.println(s.age);

        System.out.println(random());
    }

    public void run(){
        go();//在本类中可直接用,也可以通过类名直接调用Student.go();
    }

    public static void go(){
//        run();//报错 static与类一起创建(那时还没run)
    }

//    代码块
    {
        //匿名 代码块 加载一些初始化的数据
        System.out.println("匿名 代码块");//执行顺序2
    }

    static {
        //静态代码块  仅仅执行一次
        System.out.println("静态代码块");//执行顺序1
    }

    public Student() {
        System.out.println("构造器");//执行顺序3
    }
}

    